/* 主票务服务接口 */
namespace go mainservice

include "common.thrift"

service TicketMainService {
    /**
     * 处理跨区域购票（协调多个区域资源）
     * @return 包含多区域座位分配的订单
     */
    common.OrderDTO PurchaseCrossRegion(
        1: common.PurchaseRequest request
    ) throws (1: common.BizException e),

    /**
     * 处理跨区域退票（需事务补偿机制）
     */
    common.OrderDTO RefundCrossRegion(
        1: common.RefundRequest request
    ) throws (1: common.BizException e),

    /**
     * 强制状态同步（用于区域间数据不一致时）
     */
    void ForceSync(
        1: common.SyncRequest request
    ) throws (1: common.BizException e),

    /**
     * 运营管理接口（座位库存调整）
     * @param operationType ADD-增加座位，REMOVE-停用座位
     */
    list<common.SeatDTO> ManageSeats(
        1: string trainNumber,
        2: string operationType,
        3: list<i32> seatIds,
        4: string adminToken
    ) throws (1: common.BizException e)
}
